using System;
using System.Collections.Generic;
using System.Text;
using JobShopModel.Model.FactoryLvl;

//TODO: Documentation !! 
namespace JobShopModel.Events
{
    /// <summary>
    /// 
    /// </summary>
    interface IEvent
    {
        private Time starttime;
        public IEvent()
        {
            starttime = new Time(0, 0.0);
        }
        public IEvent(Time start)
        {
            starttime = start;
        }
        //protected void 
        /// <summary>
        /// 
        /// </summary>
        public Time StartTime
        {
            get
            {
                return starttime;
            }
            set
            {
                starttime = value;
            }
        }

        //polymorphic so that whatever event is in the queue can update statistics
        //and push any resulting events on to the queue
        void fire()
        {
        }
        /// <summary>
        /// Event return the time elapsed by THIS PARTICULAR event !!
        /// or maybe not .... <see cref="discution of google group"/>
        /// </summary>
        /// <returns></returns>
        Time process();

    }
}
